var editing;
var store;
var grid;
var search;
var incomeFromObj;
$(function(){
	$.ajax({
	    type: "GET",
	    url: "../../business/income/incomeTypeList",
	    dataType: "json",
	    contentType:"application/json",
	    success: function(data){
		   	 if(data) {
		   		incomeFromObj = data;
		   		BUI.use([ 'bui/grid', 'bui/data', 'common/search' ], function(Grid, Data, Search) {
		   			Store = Data.Store;
		   			var Grid = Grid, columns = [ 
		   		        {
		   					title : '用户名',
		   					dataIndex : 'userName',
		   					editor : {xtype : 'number',rules : {required : true}},
		   					width:'20%'
		   				}, {
		   					title : '收益来源',
		   					dataIndex : 'incomeFromName',
		   					editor : {
		   						xtype :'select', rules : {required : true},
		   						items : incomeFromObj
	   						},
	   						width:'20%'
		   				}, {
		   					title : '收益金额',
		   					dataIndex : 'incomeAmt',
		   					renderer : function(value) {
		   						return longToYJF(value);
		   					},
		   					width:'20%'
		   				}, {
		   					title : '领取状态',
		   					dataIndex : 'status',
		   					renderer : function(value) {
		   						if(value == true) {
		   							return '已领取';
		   						}
		   						
		   						return '未领取';
		   					},
		   					width:'20%'
		   				}, {
		   					title : '获取时间',
		   					dataIndex : 'incomeCreateTime',
		   					renderer : function(value) {
		   						return new Date(value).Format("yyyy-MM-dd hh:mm:ss");
		   					},
		   					width:'20%'
		   				}
		   			];

		   			/**
		   			 * 自动发送的数据格式：
		   			 *  1. start: 开始记录的起始数，如第 20 条,从0开始
		   			 *  2. limit : 单页多少条记录
		   			 *  3. pageIndex : 第几页，同start参数重复，可以选择其中一个使用
		   			 *
		   			 * 返回的数据格式：
		   			 *  {
		   			 *     "rows" : [{},{}], //数据集合
		   			 *     "results" : 100, //记录总数
		   			 *     "hasError" : false, //是否存在错误
		   			 *     "error" : "" // 仅在 hasError : true 时使用
		   			 *   }
		   			 * 
		   			 */
		   			editing = new Grid.Plugins.RowEditing({
		   				triggerCls : 'btn-add',
		   				triggerSelected : false
		   			});
		   			//编辑提交
		   			editing.on('accept', function(ev) {
		   				commitEdit(ev);
		   			});
		   			
		   		    //编辑取消
		   			editing.on('cancel', function(ev) {
		   				store.remove(ev.record);
		   			});
		   			
		   			store = new Store({
		   				url : '../../business/income/pageQuery',
		   				autoLoad : true, //自动加载数据
		   				params : {},
		   				pageSize : 5,
		   				proxy : {
		   					method : 'post',
		   			        dataType : 'json'
		   			    }
		   			// 配置分页数目
		   			});
		   			
		   		  var gridCfg = Search.createGridCfg(columns, {
		   			  		stripeRows : true,
		   			  		width : '100%',
		   			  		loadMask : true, //加载数据时显示屏蔽层
			   		      	// 顶部工具栏
			   		        tbar:{ //添加、删除
			   		            items : [{
			   		              btnCls : 'button button-small',
			   		              text : '<i class="icon-plus"></i>添加收益',
			   		              listeners : {
			   		                'click' : addFunction
			   		              }
			   		            }]
			   		        },
			   				// 底部工具栏
			   				bbar : {
			   					// pagingBar:表明包含分页栏
			   					pagingBar : true
			   				},
			   		        plugins : [ editing]
	   				});
		   		  
		   		  	// 查询
		   		  	search = new Search({
			  			store : store,
			  			gridCfg : gridCfg
		   		  	});
		   		  	grid = search.get('#grid');
		   		});
		   	 } else {
		   		alertMsg(0,'收益类型请求失败!');
		   	 }
	    },
		 error: function() {
			 alertMsg(0,'收益类型请求失败!');
		}
    });
	
	$('#search-btn').on('click',function(){
		search.load();
	});
	
});

// 手动添加收益
function addFunction() {
    var newData = {};
    store.addAt(newData,0);
    editing.edit(newData,'userName'); //添加记录后，直接编辑 
}

// 提交编辑
function commitEdit(ev) {
	var record = editing.get('record');
	var paramObj = {};
	paramObj.userName = record["userName"];
	paramObj.incomeTypeId = parseInt(record["incomeFromName"]);
	
	$.ajax({
	    type: "POST",
	    url: "../../business/income/add",
	    data: JSON.stringify(paramObj),
	    contentType:"application/json",
	    success: function(data){
		   	 if(data == 'success') {
		   		alertMsg(1,'添加成功!');
		   		gridReload();
		   	 } else {
		   		alertMsg(0,'添加失败!');
		   		gridReload();
		   	 }
	    },
		 error: function() {
			 alertMsg(0,'添加失败!');
			 gridReload();
		}
    });
}

function gridReload() {
	store.set('start',0);
	store.load();
}

